﻿<p>Ahoj,</p>
<p>
    vítej v další kapitole. Dnes si vysvětlíme, co jsou podmínky a co je příkaz <b>KDYŽ</b>. 
    Než se pustíme do vysvětlování, co jsou podmíky, musím ti napřed o sobě prozradit jednu věc. 
    Zatím jsem ti řekl, že umím čtyři základní příkazy <b>KROK</b>, <b>VLEVO-VBOK</b>, <b>POLOŽ</b> a <b>ZVEDNI</b>.
    Dále jsem ti ukázal, že pomocí těchto základních příkazů mi můžeš tvořit a zadávat příkazy složitější. To ale není všechno, co umím.
    V měm robotickém těle jsou zabudována čidla, pomocí kterých mohu zjišťovat informace o svém okolí. První mám kompas, tak umím zjistit, na kterou světovou 
    stranu ve svém městě jsem otočený. Umím zjistit, zda jsem orientován na <b>SEVER</b>, <b>JIH</b>, <b>VÝCHOD</b> nebo <b>ZÁPAD</b>.
    A dále mám speciální čidla, pomocí kterých umím zjistit, zda je přede mnou <b>ZEĎ</b>, nebo zda na políčku, na kterém jsem je pode mnou <b>ZNAČKA</b>.
</p>
<p>
    A právě pokud chceš zapojit tato má čidla a pomocí nich něco zjistit, je třeba vytvořit podmínku. První, co musíš napsat, je příkaz <b>KDYŽ</b>, který uvozuje
    zapojení čidel. Za tímto příkazem pak následuje vlastní podmínka, která vyjadřuje, co chceš pomocí mých čidel o mém okolí zjistit. První slova, kterými se píše podmínka
    jsou slova  <b>JE</b> anebo <b>NENÍ</b>. Říkáš mi tím, zda chceš, aby daná podmínka platila nebo naopak zda chceš, aby neplatila. Potom následuje slovo příkazuu reprezentující
    konkrétní věc, kterou chceš zjistit. Jak už tě asi napadá, jsou to výše zmíněné příkazy <b>SEVER</b>, <b>JIH</b>, <b>VÝCHOD</b>, <b>ZÁPAD</b>, <b>ZEĎ</b> nebo <b>ZNAČKA</b>.
    Podle toho potom, jak se podmínka vyhodnotí, se buď provede a nebo neprovede seznam příkazů, který následuje za příkazem <b>KDYŽ</b>. Ufff, vypadá to složitě, co? Ale opravdu není, ukážu
    ti jednoduchý příklad:   
</p>
<div class="userCommand"><div>?KROK</div><div class="commandBlock"><div><div class="branchCommand"><div>KDYŽ NENÍ ZEĎ</div><div class="commandBlock"><div class="command">KROK</div></div><div>KONEC</div></div></div></div><div>KONEC</div></div>

<p>
    Tento příkaz napřed aktivuje čidlo ke zjištění, zda přede mnou není zeď, a pokud není, tak provedu příkaz <b>KROK</b> a nebo jej ignoruji. Všimni si, že za příkazem <b>KROK</b> následuje
    příkaz <b>KONEC</b>, který mi říká, že tím končí blok příkazů, které se provedou, pokud platí daná podmínka. V editoru příkazů by se následující příkaz napsal asi takto:
</p>
<pre>
?KROK
  KDYŽ NENÍ ZEĎ
    KROK
  KONEC
KONEC
</pre>

<p>Další jednoduché příkazy, které mi můžeš zkusit napsat jsou třeba:</p>
<div class="userCommand"><div>?ZVEDNI</div><div class="commandBlock"><div><div class="branchCommand"><div>KDYŽ JE ZNAČKA</div><div class="commandBlock"><div class="command">ZVEDNI</div></div><div>KONEC</div></div></div></div><div>KONEC</div></div>
<div class="userCommand"><div>?ZPĚT</div><div class="commandBlock"><div class="callCommand">ČELEM-VZAD</div><div class="callCommand">?KROK</div><div class="callCommand">ČELEM-VZAD</div></div><div>KONEC</div></div>
<p>První příkaz mi říká, že pokud je pode mnou značka, tak ji zvednu. Druhý už využívá příkaz <b>?KROK</b> a tímto příkazem se posunu o políčko zpět, pokud za mnou není zeď.</p>
<p>
    Podmíněný příkaz <b>KDYŽ</b> lze také spojit s rekurzí, jak ukazují následující příkazy, které mne otočí na žádanou světovou stranu.
</p>
<div class="userCommand"><div>NA-SEVER</div><div class="commandBlock"><div><div class="branchCommand"><div>KDYŽ NENÍ SEVER</div><div class="commandBlock"><div class="command">VLEVO-VBOK</div><div class="commandRecursive">NA-SEVER</div></div><div>KONEC</div></div></div></div><div>KONEC</div></div>
<div class="userCommand"><div>NA-JIH</div><div class="commandBlock"><div><div class="branchCommand"><div>KDYŽ NENÍ JIH</div><div class="commandBlock"><div class="command">VLEVO-VBOK</div><div class="commandRecursive">NA-JIH</div></div><div>KONEC</div></div></div></div><div>KONEC</div></div>
<div class="userCommand"><div>NA-VÝCHOD</div><div class="commandBlock"><div><div class="branchCommand"><div>KDYŽ NENÍ VÝCHOD</div><div class="commandBlock"><div class="command">VLEVO-VBOK</div><div class="commandRecursive">NA-VÝCHOD</div></div><div>KONEC</div></div></div></div><div>KONEC</div></div>
<div class="userCommand"><div>NA-ZÁPAD</div><div class="commandBlock"><div><div class="branchCommand"><div>KDYŽ NENÍ ZÁPAD</div><div class="commandBlock"><div class="command">VLEVO-VBOK</div><div class="commandRecursive">NA-ZÁPAD</div></div><div>KONEC</div></div></div></div><div>KONEC</div></div>
<p>
    A nakonec ti ukážu novou verzi příkazu <b>MARATON</b> z minulé kapitoly, při kterém doběhnu ke zdi a neudělám si bouli na čele.
</p>
<div class="userCommand"><div>?MARATON</div><div class="commandBlock"><div><div class="branchCommand"><div>KDYŽ NENÍ ZEĎ</div><div class="commandBlock"><div class="command">KROK</div><div class="commandRecursive">?MARATON</div></div><div>KONEC</div></div></div></div><div>KONEC</div></div>
